home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
et
/
et3_0-a1.lha
/
et3
/
src
/
Command.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-04-27
|
2KB
|
93 lines
#ifndef Command_First
#ifdef __GNUG__
//pragma once
#pragma interface
#endif
#define Command_First
#include "Object.h"
#include "Point.h"
typedef enum {
eTrackPress,
eTrackMove,
eTrackRelease,
eTrackIdle,
eTrackExit
} TrackPhase;
typedef enum {
eCmdStateNew,
eCmdStateDone,
eCmdStateNotDone,
eCmdStateFinished
} CommandState;
typedef enum {
eCmdTypeNormal,
eCmdTypeCantUndo,
eCmdTypeNoChange
} CommandType;
typedef enum {
eCmdMoveEvents = BIT(eObjLast+1),
eCmdIdleEvents = BIT(eObjLast+2),
eCmdFullScreen = BIT(eObjLast+3),
eCmdNoReplFeedback= BIT(eObjLast+4),
eCmdDefault = 0,
eCmdLast = eObjLast + 4
} CommandFlags;
class Command: public Object {
int CmdNumber;
char *CmdName;
CommandState state;
CommandType type;
public:
MetaDef(Command);
Command(int= 0, char *CmdName= 0, CommandType t= eCmdTypeNormal);
Command(char *CmdName, CommandType t= eCmdTypeNormal);
void SetName(char *name)
{ CmdName= name; }
char *GetName()
{ return CmdName; }
char *GetUndoName();
void SetId(int cmd)
{ CmdNumber= cmd; }
int GetId()
{ return CmdNumber; }
void SetType(CommandType t)
{ type= t; }
CommandType GetType()
{ return type; }
void Finish();
int Perform();
virtual void Done(Command *newCommand);
protected:
virtual void Commit();
virtual void UndoIt();
virtual void DoIt();
virtual void RedoIt();
void InspectorId(char *buf, int sz);
friend class Clipper;
virtual void TrackConstrain(Point anchorPoint, Point previousPoint,
Point *nextPoint);
virtual void TrackFeedback(Point anchorPoint, Point previousPoint,
bool turnItOn);
virtual Command *TrackMouse(TrackPhase aTrackPhase, Point anchorPoint,
Point previousPoint, Point nextPoint);
};
extern Command *gNoChanges;
extern Command *gResetUndo;
#endif